package com.yswee.framework.data.parser;

import java.util.Collection;
import java.util.Date;

import org.json.JSONArray;
import org.json.JSONObject;

import com.yswee.framework.utils.JsonUtils;

public class JsonParser {
	
	public static final String EMPTYVALUE = "{}";
	public static final String EMPTYARRAY = "[]";
	
	public JsonParser() { }
	
	protected String getString(JSONObject json, String name) {
        return JsonUtils.getString(name, json);
    }
	
	protected String[] getStringArray(JSONObject json, String name) {
        return JsonUtils.getStringArray(name, json);
    }

	protected Date getDate(JSONObject json, String name) {
		return JsonUtils.getDate(name, json);
    }

	protected Date getDate(JSONObject json, String name, String format) {
		return JsonUtils.getDate(name, json, format);
    }

	protected int getInt(JSONObject json, String name) {
		return JsonUtils.getInt(name, json);
    }
	
	protected int[] getIntArray(JSONObject json, String name) {
        return JsonUtils.getIntArray(name, json);
    }

	protected long getLong(JSONObject json, String name) {
		return JsonUtils.getLong(name, json);
    }
	
	protected long[] getLongArray(JSONObject json, String name) {
        return JsonUtils.getLongArray(name, json);
    }

	protected float getFloat(JSONObject json, String name) {
    	return JsonUtils.getFloat(name, json);
    }
	
	protected float[] getFloatArray(JSONObject json, String name) {
        return JsonUtils.getFloatArray(name, json);
    }

	protected double getDouble(JSONObject json, String name) {
    	return JsonUtils.getDouble(name, json);
    }
	
	protected double[] getDoubleArray(JSONObject json, String name) {
        return JsonUtils.getDoubleArray(name, json);
    }

	protected boolean getBoolean(JSONObject json, String name) {
    	return JsonUtils.getBoolean(name, json);
    }

	protected JSONObject asJSONObject(String res) {
    	return JsonUtils.asJSONObject(res);
    }

	protected JSONArray asJSONArray(String res) {
		return JsonUtils.asJSONArray(res);
    }
    
	protected String toJSON(Object obj) {
		return JsonUtils.toJSON(obj);
	}

	protected <T> T parseObject(JSONObject jo, Class<T> clazz) {
		return JsonUtils.parseObject(jo, clazz);
	}

	protected <T> T parseObject(String jsonString, Class<T> clazz) {
		return JsonUtils.parseObject(jsonString, clazz);
	}

	protected <T> T[] parseArray(JSONArray ja, Class<T> clazz) {
		return JsonUtils.parseArray(ja, clazz);
	}

	protected <T> T[] parseArray(String jsonString, Class<T> clazz) {
		return JsonUtils.parseArray(jsonString, clazz);
	}

	protected <T> Collection<T> parseCollection(JSONArray ja,
			Class<?> collectionClazz,
			Class<T> genericType) {
		return JsonUtils.parseCollection(ja, collectionClazz, genericType);
	}

	protected <T> Collection<T> parseCollection(String jsonString,
			Class<?> collectionClazz,
			Class<T> genericType) {
		return JsonUtils.parseCollection(jsonString, collectionClazz, genericType);
	}

	protected boolean isNull(JSONObject obj) {
		return JSONObject.NULL.equals(obj);
	}
}
